package com.young.service;

import com.young.entity.User;
import com.young.exception.ValidateCodeExpiredException;

import javax.mail.MessagingException;

/**
 * 描述:
 *
 * @author BluceYoung
 * @create 2020-12-02 19:52
 * B站：TeacherYoung凌风
 * www.teacheryoung.com
 */
public interface UserService {

    /**
     * 注册业务
     * @param user
     * @return
     */
    boolean register(User user) throws MessagingException;

    /**
     * 用户登录
     * @param loginMail
     * @param pwd
     * @return null说明登录失败
     */
    User login(String loginMail,String pwd);

    /**
     * 新用户激活
     * @param userId 用户编号
     * @param code 验证码
     * @return true：激活成功，false验证码错误，异常：验证码过期
     * @exception RuntimeException 验证码过期抛出异常
     */
    boolean active(Long userId,String code) throws ValidateCodeExpiredException;

    /**
     * 修改个人资料
     * @param user
     * @return
     */
    boolean modify(User user);

    /**
     * 上传用户头像
     * @param userId 用户编号
     * @param imgData 图像数据(Base64编码的字符串)
     * @param savePath 存储的目录（绝对路径）
     * @return 最终的头像路径
     */
    String uploadHead(Long userId,String imgData,String savePath);

    /**
     * 查询一个特定的用户信息
     * @param user 查询条件
     * @return
     */
    User get(User user);
}
